/*
 * @Author: 李天惊 uf_lee@163.com
 * @Date: 2025-02-10 11:35:50
 * @LastEditors: 李天惊 uf_lee@163.com
 * @LastEditTime: 2025-03-18 17:10:22
 * @FilePath: \global-brain\global-brain-admin\src\components\Form\src\componentMap.ts
 * Copyright (c) 2025 by ${git_name_email}, All Rights Reserved.
 */
import type { Component } from 'vue'
import {
  ElCascader,
  ElCheckboxGroup,
  ElColorPicker,
  ElDatePicker,
  ElInput,
  ElInputNumber,
  ElRadioGroup,
  ElRate,
  ElSelect,
  ElSelectV2,
  ElSlider,
  ElSwitch,
  ElTimePicker,
  ElTimeSelect,
  ElTransfer,
  ElAutocomplete,
  ElDivider,
  ElTreeSelect
} from 'element-plus'
import { InputPassword } from '@/components/InputPassword'
import { Editor } from '@/components/Editor'
import { DialogRefer } from '@/components/DialogRefer'
import { UploadFile, UploadImageMultiple, UploadVideo, Upload } from '@/components/Upload'
import { LeeTiptapEditor } from '@/components/Lee/Editor'

const componentMap: Recordable<Component, ComponentName> = {
  Radio: ElRadioGroup,
  Checkbox: ElCheckboxGroup,
  CheckboxButton: ElCheckboxGroup,
  Input: ElInput,
  Autocomplete: ElAutocomplete,
  InputNumber: ElInputNumber,
  Select: ElSelect,
  Cascader: ElCascader,
  Switch: ElSwitch,
  Slider: ElSlider,
  TimePicker: ElTimePicker,
  DatePicker: ElDatePicker,
  Rate: ElRate,
  ColorPicker: ElColorPicker,
  Transfer: ElTransfer,
  Divider: ElDivider,
  TimeSelect: ElTimeSelect,
  SelectV2: ElSelectV2,
  RadioButton: ElRadioGroup,
  InputPassword: InputPassword,
  Editor: Editor,
  TreeSelect: ElTreeSelect,
  DialogRefer: DialogRefer,
  Upload: Upload,
  UploadVideo: UploadVideo,
  UploadImageMultiple: UploadImageMultiple,
  UploadFile: UploadFile,
  LeeTiptapEditor: LeeTiptapEditor
}

export { componentMap }
